/**
 * 有效括号匹配的简单版
 * 构造一个计数器，初始值为0，遇左+1，遇右-1，且计数器的值不能小于0，结束判断计数器的值，为0的话返回true
 * 空串返回true， 串的长度是奇数或者串的第一个字符是右括号时直接返回false;
 * (((((()))))) -- VALID
 * ()()()()     -- VALID
 * (((((((()    -- INVALID
 * ((()(())))   -- VALID
 */
public class A617Extendsion {
    public static void main(String[] args) {
        String s = "(((((())))))";
        Solution617Extend solution617Extend = new Solution617Extend();
        System.out.println(solution617Extend.isValid(s));

    }
}

class Solution617Extend {
    public boolean isValid(String s) {
        char[] ch = s.toCharArray();
        int count = 0;

        if(s == "") return true;
        if(s.length() % 2 !=0) return false;
        System.out.println(s.length());

        for (int i = 0; i < ch.length; i++) {
            if (ch[i] == '(') {
                count++;
            } else if (ch[i] == ')') {
                count--;
            }
            if(count < 0) return false;


//            if(count < 0){
//                return false;
//            }else{
//                if(ch[i] == '('){
//                    count++;
//                }else if(ch[i] == ')'){
//                    count--;
//                }
//            }
        }

        if(count == 0){
            return true;
        }else {
            return false;
        }
    }
}
